# 静态化首页
import os,time
from django.template import loader
from django.conf import settings

from apps.contents.utils import get_categories
from apps.contents.models import ContentCategory


def generate_static_index_html():
    """静态化首页"""
    # 查询首页相关数据
    # 查询商品分类
    categories = get_categories()

    # 查询首页广告: 查询每一种广告对应的所有内容,广告必须是未下线的广告
    # 准备首页广告数据大字典
    contents = {}
    # 查询所有的广告类别
    content_categories = ContentCategory.objects.all()
    for content_cat in content_categories:
        # 这么补充图片的地址，性能极差（不用）
        # 我们选择的是：什么时候要渲染图片就什么时候拼接那个图片的下载地址
        # for content in content_cat.content_set.filter(status=True).order_by('sequence'):
        #     content.image = 'http://192.168.103.221:8888/' + content.image

        contents[content_cat.key] = content_cat.content_set.filter(status=True).order_by(
            "sequence")  # 一方模型对象．多方模型类名小写_set/ relate_name

    # 查询首页广告

    # 构造上下文
    context = {
        "categories": categories,
        "contents": contents,
    }

    # 响应渲染好的 index.html 给浏览器展示
    # return render(request, "index.html", context)

    # 以下是将渲染好的index.html写入到一个静态文件而已,将来这个静态文件给nginx
    # 获取首页模板文件
    template = loader.get_template("index.html")

    # 渲染首页html字符串
    index_html_text = template.render(context)

    # 将首页html字符串写入到指定目录，命名 'index.html'
    file_path = os.path.join(settings.STATICFILES_DIRS[0], "index.html")
    with open(file_path,"w", encoding="utf-8") as f:
        f.write(index_html_text)
    pass